using System;
using System.Collections;
using System.Collections.Generic;
using System.Text;
using Castle.ActiveRecord;

namespace EYDIngenieria.ERP.ObjetosDeNegocio.Dominio
{
    [ActiveRecord]
    public class OrdenDeCompra:ActiveRecordBase<OrdenDeCompra>
    {
        private int numeroOrdenDeCompra;
        private Proveedor proveedor;

        private IList detalle = new ArrayList();
        private long montoTotal;
        private int id;
        private DateTime fecha;
        private EstadoOrdenDeCompra estadoOrdenDeCompra;
        private int numeroCheque;
        private Factura factura;
        private CuentaCorriente cuentaCorriente;

        [BelongsTo("IdCuentaCorriente")]
        public CuentaCorriente CuentaCorrientee
        {
            get { return cuentaCorriente; }
            set { cuentaCorriente = value; }
        }


        [BelongsTo("IdFactura")]
        public Factura Factura
        {
            get { return factura; }
            set { factura = value; }
        }


        [Property]
        public int NumeroCheque
        {
            get { return numeroCheque; }
            set { numeroCheque = value; }
        }



        [BelongsTo("IdEstadoOC")]
        public EstadoOrdenDeCompra EstadoOrdenDeCompra
        {
            get { return estadoOrdenDeCompra; }
            set { estadoOrdenDeCompra = value; }
        }


        [Property]
        public DateTime Fecha
        {
            get { return fecha; }
            set { fecha = value; }
        }



        [PrimaryKey(PrimaryKeyType.Native)]
        public int Id
        {
            get { return id; }
            set { id = value; }
        }


        [Property]
        public long MontoTotal
        {
            get
            {
                //montoTotal = 0;
                //foreach (DetalleOrdenDeCompra detalle in Detalle)
                //{
                //    montoTotal = montoTotal + detalle.ValorTotal;
                //}
                return montoTotal;
            }
            set { montoTotal = value; }
        }


        

        [BelongsTo("IdProveedor")]
        public Proveedor Proveedor
        {
            get { return proveedor; }
            set { proveedor = value; }
        }

       [Property]
        public int NumeroOrdenDeCompra
        {
            get { return numeroOrdenDeCompra; }
            set { numeroOrdenDeCompra = value; }
        }

        [HasMany(typeof(DetalleOrdenDeCompra))]
        public IList Detalle
        {
            get { return detalle; }
            set { detalle = value; }
        }

    }
}
